// import 'core-js/modules/es.object.to-string';
// import 'core-js/modules/es.promise';
// import 'core-js/modules/web.timers';

/*
    index.js: webpack入口起点文件

    1. 运行指令：
        开发环境：webpack ./src/index.js -o ./build/built.js --mode=development
                webpack会以 ./src/index.js 为入口文件开始打包，打包后输出到./build/built.js ，整体打包环境，是开发环境
        生产环境：webpack ./src/index.js -o ./build/built.js --mode=production

    2. 结论
        1. webpack能处理js／json资源,不能处理css／img等其他资源；
        2. 生产环境和开发环境将es6模块化编译成浏览器能识别的模块化～；
        3. 生产环境比开发环境多一个压缩js代码；
        */
// import '@babel/polyfill';
// css
import '../css/style.css';
import '../css/index.less'; // 引入iconfont样式文件

import '../css/iconfont.css'; // json
// import data from './data.json';
import print from './print';
console.log('index.js文件被加载了～');
print();
// console.log(data);

function add(x, y) {
  return x + y;
}

// 下一行eslint所有规则都失效（下一行不进行eslint检查）
// eslint-disable-next-line
console.log(add(1, 2));

const reduce = function reduce(x, y) {
  return x - y;
};

const promise = new Promise(((resolve) => {
  setTimeout(() => {
    console.log('定时器执行完了～');
    resolve();
  }, 1000);
}));
console.log(promise);


// HMR
if(module.hot){
  // 一旦module.hot为true，说明开启了HMR功能  --> 让HMR功能代码生效
  module.hot.accept('./print.js', function(){
    // 方法会监听print.js 文件的变化，一旦发生变化，其他模块不会重新打包构建
    // 会执行后面的回调函数
    print();
  })
}


import { mul } from './treeshaking';
console.log(mul(2, 3));
